#include "LRUCache.h"
#include <string>

using std::cout;
using std::endl;
using std::string;
int main()
{
    LRUCache<int, string, 3> cache;
    cache.put(1, "A");
    cache.put(2, "B");
    cache.put(3, "C");
    cache.put(1, "A");
    auto val1 = cache.get(1);
    if(val1.has_value()) cout << *val1 << endl;
    auto val2 = cache.get(2);
    if(val2.has_value()) cout << *val2 << endl;
    auto val3 = cache.get(3);
    if(val3.has_value()) cout << *val3 << endl;
    cache.put(4, "D");

    cout << cache.contains(2) << endl;
    cout << cache.size() << endl;
}